/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package io;

import java.sql.Date;

/**
 *
 * @author facundo
 */
public class PersonaDTO {

    private int id;
    private int dni;
    private String nombre;
    private String direccion;
    private String direccionactual;
    private String telefono;
    private String telefono2;
    private Date fechanacimiento;
    private String localidad;
    private String lugardetrabajo;
    private String email;
    private String observaciones;
    private Date fecharegistro;
    private String conyuge;

    /**
     * Este es el constructor de la clase, inicializa los valores de todos los
     * atributos
     */
    public PersonaDTO(int id, int dni, String nombre, String direccion, String direccionactual, String telefono, String telefono2, Date fechanacimiento, String localidad, String lugardetrabajo, String email, String observaciones, Date fecharegistro, String conyuge) {
        this.id = id;
        this.dni = dni;
        this.nombre = nombre;
        this.direccion = direccion;
        this.direccionactual = direccionactual;
        this.telefono = telefono;
        this.telefono2 = telefono2;
        this.fechanacimiento = fechanacimiento;
        this.localidad = localidad;
        this.lugardetrabajo = lugardetrabajo;
        this.email = email;
        this.observaciones = observaciones;
        this.fecharegistro = fecharegistro;
        this.conyuge = conyuge;
    }

    /**
     * Este es el constructor de la clase, inicializa los valores de todos los
     * atributos, excepto el id
     */
    public PersonaDTO(int dni, String nombre, String direccion, String direccionactual, String telefono, String telefono2, Date fechanacimiento, String localidad, String lugardetrabajo, String email, String observaciones, Date fecharegistro, String conyuge) {
        this.dni = dni;
        this.nombre = nombre;
        this.direccion = direccion;
        this.direccionactual = direccionactual;
        this.telefono = telefono;
        this.telefono2 = telefono2;
        this.fechanacimiento = fechanacimiento;
        this.localidad = localidad;
        this.lugardetrabajo = lugardetrabajo;
        this.email = email;
        this.observaciones = observaciones;
        this.fecharegistro = fecharegistro;
        this.conyuge = conyuge;
    }

    /**
     * Este constructor de la clase se utiliza sin parámetros cuando se
     * genera una nueva persona para mostrar en la pantalla de agregar venta
     */
    public PersonaDTO() {
        this.nombre = "";
        this.direccion = "";
        this.direccionactual = "";
        this.telefono = "";
        this.telefono2 = "";
        this.localidad = "";
        this.lugardetrabajo = "";
        this.email = "";
        this.observaciones = "";
        this.fecharegistro = new java.sql.Date((new java.util.Date()).getTime());
        this.conyuge = "";
    }

    /**
     * Este es el constructor de la clase, inicializa solo el id
     */
    public PersonaDTO(int id) {
        this.id = id;
    }

    public String getConyuge() {
        return conyuge;
    }

    public String getDireccion() {
        return direccion;
    }

    public String getDireccionactual() {
        return direccionactual;
    }

    public int getDni() {
        return dni;
    }

    public String getEmail() {
        return email;
    }

    public Date getFechanacimiento() {
        return fechanacimiento;
    }

    public Date getFecharegistro() {
        return fecharegistro;
    }

    public int getId() {
        return id;
    }

    public String getLocalidad() {
        return localidad;
    }

    public String getLugardetrabajo() {
        return lugardetrabajo;
    }

    public String getNombre() {
        return nombre;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public String getTelefono() {
        return telefono;
    }

    public String getTelefono2() {
        return telefono2;
    }

    public void setConyuge(String conyuge) {
        this.conyuge = conyuge;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public void setDireccionactual(String direccionactual) {
        this.direccionactual = direccionactual;
    }

    public void setDni(int dni) {
        this.dni = dni;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setFechanacimiento(Date fechanacimiento) {
        this.fechanacimiento = fechanacimiento;
    }

    public void setFecharegistro(Date fecharegistro) {
        this.fecharegistro = fecharegistro;
    }

    public void setId(int id) {
        this.id = id;
    }

    public void setLocalidad(String localidad) {
        this.localidad = localidad;
    }

    public void setLugardetrabajo(String lugardetrabajo) {
        this.lugardetrabajo = lugardetrabajo;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public void setTelefono2(String telefono2) {
        this.telefono2 = telefono2;
    }

    /**
     * Este método permite setearle todos estos datos a la persona
     * @param dni
     * @param nombre
     * @param direccion
     * @param direccionactual
     * @param telefono
     * @param telefono2
     * @param fechanacimiento
     * @param localidad
     * @param lugardetrabajo
     * @param email
     * @param observaciones
     * @param fecharegistro
     * @param conyuge 
     */
    public void setData(int dni, String nombre, String direccion, String direccionactual, String telefono, String telefono2, Date fechanacimiento, String localidad, String lugardetrabajo, String email, String observaciones, Date fecharegistro, String conyuge) {
        this.dni = dni;
        this.nombre = nombre;
        this.direccion = direccion;
        this.direccionactual = direccionactual;
        this.telefono = telefono;
        this.telefono2 = telefono2;
        this.fechanacimiento = fechanacimiento;
        this.localidad = localidad;
        this.lugardetrabajo = lugardetrabajo;
        this.email = email;
        this.observaciones = observaciones;
        this.fecharegistro = fecharegistro;
        this.conyuge = conyuge;
    }

    /**
     * Compara dos objetos de la clase PersonaDTO
     * @param persona
     * @return true si todos los atributos son iguales, false en caso contrario
     */
    public boolean equalsTo(PersonaDTO persona) {
        if (this.id == persona.getId() && this.dni == persona.getDni() && this.nombre.equalsIgnoreCase(persona.getNombre()) && this.direccion.equalsIgnoreCase(persona.getDireccion()) && this.direccionactual.equalsIgnoreCase(persona.getDireccionactual()) && this.telefono.equalsIgnoreCase(persona.getTelefono()) && this.telefono2.equalsIgnoreCase(persona.getTelefono2()) && (this.fechanacimiento.compareTo(persona.getFechanacimiento()) == 0) && this.localidad.equalsIgnoreCase(persona.getLocalidad()) && this.lugardetrabajo.equalsIgnoreCase(persona.getLugardetrabajo()) && this.email.equalsIgnoreCase(persona.getEmail()) && this.observaciones.equalsIgnoreCase(persona.getObservaciones()) && (this.fecharegistro.compareTo(persona.getFecharegistro()) == 0) && this.conyuge.equalsIgnoreCase(persona.getConyuge())) {
            return true;
        } else {
            return false;
        }
    }
}
